package br.ucb.servlets.livro;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.ucb.dao.LivroDAO;
import br.ucb.entidade.Livro;
import br.ucb.service.LivroService;
import br.ucb.service.impl.LivroServiceImpl;
import br.ucb.servlets.AbstractPapirosServlet;
import br.ucb.servlets.util.PapirosUtil;

@SuppressWarnings("serial")
public class PesquisarLivrosServlet extends AbstractPapirosServlet<Livro, LivroService, LivroDAO>{

	@Override
	protected void processaRequisicao(HttpServletRequest req,
			HttpServletResponse resp)throws ServletException,IOException {
		
		setEntidadeService(new LivroServiceImpl());
		setEntidade(getDadosFormulario(req));
		
		req.setAttribute("generos", PapirosUtil.getGeneros());
		
		List<Livro> livros = find(getEntidade(),req);
		if(!livros.isEmpty()){
			req.setAttribute("livros", livros);
		}else{
			if(getEntidade().getTitulo()!=null){//verifica se foi realizada uma pesquisa
				setMensagem("Nenhum registro encontrado.", req);
			}
		}
			
		forward(req, resp, "/jsp/livro/livro.jsp");
	}
	
	private Livro getDadosFormulario(HttpServletRequest req){
		Livro livro = new Livro();
		
		livro.setTitulo(req.getParameter("txtTitulo"));
		livro.setEditora(req.getParameter("txtEditora"));
		livro.setGenero(req.getParameter("txtGenero"));
		livro.setAno(req.getParameter("txtAno"));
		
		return livro;
	}	
	
}
